#ifndef __BSP_CAN_H
#define __BSP_CAN_H
#include "can.h"


/**
 * @brief 提取接收到的can报文的有效信息
 * @param data		报文数据的数组
 * @param DLC		报文数据长度
 * @param StdId		报文的标准地址
 * @param ExtId		报文的扩展地址
 * @param IDE		报文的ID类型(标准帧or扩展帧)
 * @param RTR		报文的帧类型(数据帧or遥控帧)
 */
typedef struct
{
	uint8_t data[8];
	uint8_t DLC;
	uint32_t StdId;
	uint32_t ExtId;
	uint32_t IDE;
	uint32_t RTR;
}can_recive_msg_t;


/*********************************************************************/
/*****************************函数声明区******************************/
/*********************************************************************/

#ifdef __cplusplus
extern "C" {
#endif
void bsp_can_init();    //bsp初始化接口
#ifdef __cplusplus
}
#endif

//发送can报文
uint8_t can_send_msg(CAN_HandleTypeDef* hcan,uint16_t ID,uint8_t *Data, uint16_t Length);
//提取can报文
void can_get_recived_msg(CAN_HandleTypeDef* hcan,uint32_t RxFIFO,can_recive_msg_t* DataBuf);

#endif
